On type-based termination and dependent pattern matching in the calculus of inductive constructions. (Terminaison basée sur les types et filtrage dépendant pour le calcul des constructions inductives)

نویسنده

  • Jorge Sacchini
چکیده

Proof assistants based on dependent type theory are progressively used as a tool to develop certified programs. A successful example is the Coq proof assistant, an implementation of a dependent type theory called the Calculus of Inductive Constructions (CIC). Coq is a functional programming language with an expressive type system that allows to specify and prove properties of programs in a higher-order predicate logic. Motivated by the success of Coq and the desire of improving its usability, in this thesis we study some limitations of current implementations of Coq and its underlying theory, CIC. We propose two extension of CIC that partially overcome these limitations and serve as a theoretical basis for future implementations of Coq. First, we study the problem of termination of recursive functions. In Coq, all recursive functions must be terminating, in order to ensure the consistency of the underlying logic. Current techniques for checking termination are based on syntactical criteria and their limitations appear often in practice. We propose an extension of CIC using a type-based mechanism for ensuring termination of recursive functions. Our main contribution is a proof of Strong Normalization and Logical Consistency for this extension. Second, we study pattern-matching definitions in CIC. With dependent types it is possible to write more precise and safer definitions by pattern matching than with traditional functional programming languages such as Haskell and ML. Based on the success of dependentlytyped programming languages such as Epigram and Agda, we develop an extension of CIC with similar features.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Formalization of SLD-Resolution in the calculus of inductive constructions

This report presents a full formalization of the operational semantics of deenite programs (used in logic programming), given by SLD-Resolution. The variables renaming process used during a SLD-derivation is completely deened in an explicit manner. Furthermore, constructive proofs of two well known lemmas (lifting lemma and switching lemma) are built from this formalization in the calculus of i...

متن کامل

Developing Certiied Programs in the System Coq the Program Tactic Developing Certiied Programs in the System Coq the Program Tactic

The system Coq is an environment for proof development based on the Calculus of Constructions extended by inductive deenitions. Functional programs can be extracted from constructive proofs written in Coq. The extracted program and its corresponding proof are strongly related. The idea in this paper is to use this link to have another approach: to give a program and to generate automatically th...

متن کامل

Theorem proving support in programming language semantics

We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational semantics, axiomatic semantics, and abstract interpretation. Descriptions as recursive functions are also provided whenever suitable, thus yielding a a verifica...

متن کامل

Acquisition d'informations lexicales à partir de corpus Cédric Messiant et Thierry Poibeau

Introduction L’existence de gros corpus (plusieurs millions de mots) et d’analyseurs syntaxiques performants fait qu’il est actuellement possible d’extraire automatiquement des connaissances à large couverture sur les mots et les constructions associées, directement à partir de corpus. Cette démarche permet d’obtenir des lexiques très complets à moindre coût, avec également des informations sur...

متن کامل

Theorem Proving Support in Programming Language Semantics N° ???? Theorem Proving Support in Programming Language Semantics

We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational semantics, axiomatic semantics, and abstract interpretation. Descriptions as recursive functions are also provided whenever suitable, thus yielding a a verifica...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011